package com.jagochan.mall.service.impl;

import com.jagochan.mall.common.exception.BusinessException;
import com.jagochan.mall.common.util.MinioUtil;
import com.jagochan.mall.service.MinioService;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import java.io.IOException;

@Service
public class MinioServiceImpl implements MinioService {
    @Resource
    private MinioUtil minioUtil;

    /**
     * 文件上传
     */
    @Override
    public String upload(MultipartFile file) {
        return minioUtil.upload(file);
    }

    /**
     * 文件上传
     */
    @Override
    public String uploadFile(String bucketName, String fileName, MultipartFile multipartFile) {
        try {
            return minioUtil.uploadFile(bucketName, fileName, multipartFile);
        } catch (IOException e) {
            return BusinessException.raise("上传失败，请联系管理员");
        }
    }

    /**
     * 预览图片
     */
    @Override
    public String preview(String fileName) {
        return minioUtil.preview(fileName);
    }

    /**
     * 文件删除
     */
    @Override
    public boolean remove(String fileName) {
        return minioUtil.remove(fileName);
    }

    /**
     * 删除文件夹及文件
     *
     * @param bucketName bucket名称
     * @param objectName 文件或文件夹名称
     */
    @Override
    public boolean deleteObjects(String bucketName, String objectName) {
        return minioUtil.deleteObjects(bucketName, objectName);
    }


}

